package com.cdvtc.news.service.impl;

import com.cdvtc.news.dao.TagDao;
import com.cdvtc.news.entity.Tag;
import com.cdvtc.news.service.TagService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Set;

@Service
public class TagServiceImpl implements TagService {

    @Autowired
    private TagDao tagDao;

    @Override
    public List<Tag> getAllTags() {
        return tagDao.getAllTags();
    }

    @Override
    public Set<Tag> getTagsByNewsId(int newsId) {
        return tagDao.getTagsByNewsId(newsId);
    }

    @Override
    @Transactional
    public void addTagsForNews(int newsId, Set<Integer> tagIds) {
        for(Integer tagId: tagIds) {
            if(!tagDao.isNewsTagExisted(newsId, tagId)) {  //先判断是否存在，不存在时才插入数据
                tagDao.addTagForNews(newsId, tagId);
            }
        }
    }

    @Override
    @Transactional
    public void updateTagsForNews(int newsId, Set<Integer> tagIds) {
        //先删除，再新增
        tagDao.deleteTagsForNews(newsId);
        addTagsForNews(newsId, tagIds);
    }
}
